<?php

namespace app\common\job;

use app\adminapi\logic\ImgTaskLogic;
use app\common\model\ImgTask;
use think\Console;
use think\queue\Job;

class AutoGenerateImgJob
{
    public function fire(Job $job, $data){


        //....这里执行具体的任务

        if ($job->attempts() > 3) {
            //通过这个方法可以检查这个任务已经重试了几次了
            return;
        }


        try {
            ImgTaskLogic::generateByNo($data['no']);
            $job->delete();

        } catch (\Exception $e) {
            //...任务执行失败后， 你可以选择重新发布这个任务
            var_dump($e->getMessage());
        }

        //如果任务执行成功后 记得删除任务，不然这个任务会重复执行，直到达到最大重试次数后失败后，执行failed方法

        // 也可以重新发布这个任务
//        $delay = 3;
//        $job->release($delay); //$delay为延迟时间

    }

    public function failed($data){

        // ...任务达到最大重试次数后，失败了
    }
}